//
//  WJStatusListViewModel.swift
//  WJWeiBo
//
//  Created by wangjun on 16/7/25.
//  Copyright © 2016年 wangjun. All rights reserved.
//

import UIKit

class WJStatusListViewModel: NSObject {

    // 全局的ViewModel数组
    lazy var statusList:[WJStatusViewModel] = [WJStatusViewModel]()
}
// MARK: - 微博首页
extension WJStatusListViewModel{
    func loadHomeData(isPullUp: Bool, isFinish:(isSuc: Bool,count: Int)->()){
        
        var maxId:Int64 = 0
        var sinceId: Int64 = 0
        // 上啦加载更多
        if isPullUp {
            maxId = statusList.last?.status?.id ?? 0
            // 因为服务器返回来重复数据 需要程序员自己处理
            if maxId > 0 {
                maxId -= 1
            }
        }else {
            // 下拉刷新
            sinceId = statusList.first?.status?.id ?? 0
        }
        
        
        
        WJNetworkingTools.shareNetworkingTools.homeLoadData(sinceId, maxId: maxId, success: { (response) -> () in
            
            
            // 判断他是否为nil 而且是否可以转成数组
            guard let res = response?["statuses"] as?[[String: AnyObject]] else{
                isFinish(isSuc: false, count: 0)
                return
            }
            // 定义一个临时可变数组
            var tempArray:[WJStatusViewModel] = [WJStatusViewModel]()
            // 遍历数组
            for dic in res {
                // 创建一个模型
                let status = WJStatus(dict: dic)
                // 创建一个viewModel
                let statusViewModel = WJStatusViewModel(status:status)
                
                // 添加viewModel
                tempArray.append(statusViewModel)
            }
            if isPullUp {
                
                self.statusList = self.statusList + tempArray
                
            }else{
                self.statusList = tempArray + self.statusList
                 isFinish(isSuc: true, count: tempArray.count)
            }
            
            }) { (error) -> () in
                print("请求失败:\(error)")
                isFinish(isSuc: false, count: 0)
        }

  }
}
